██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Setuid e setgid
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Nei mwbasistemi operativi mwbqUnix e mwbgUnix-like, mwbwsetuid (abbreviazione di mwcamwcqset mwcguser mwcwid, mwdaassegna l'identificativo utente) e mwdqsetgid (abbreviazione di mwdgmwdwset mweagroup mweqid, mwegassegna l'identificativo di gruppo) sono dei mwewpermessi speciali attribuibili a mwfafile e mwfqdirectory che modificano il comportamento del sistema nei loro confronti. Essi possono essere impostati o rimossi tramite il comando mwfgchmod.
Contents
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Comportamento sui file
File eseguibili
Quando applicato a mwgwfile eseguibili, il permesso mwhasetuid permette ad un mwhqutente che già possiede appropriati permessi di esecuzione sul file di eseguirlo con anche i privilegi dell'utente proprietario del file oltre che ai propri.
Tecnicamente la cosa è gestita dal mwhwkernel, che nel caso debba caricare in memoria un nuovo programma tramite una delle mwiachiamate di sistema della famiglia mwiqexec si occupa di impostare mwigl'mwiwmwjaeffective user ID nel mwjqmwjgprocess control block del nuovo mwjwprocesso con lo mwkamwkquser identifier del proprietario del file.
Il permesso mwkwsetuid viene tipicamente usato per permettere ad utenti non privilegiati di eseguire particolari programmi con i privilegi dell'amministratore (mwlaroot): un tipico esempio è l'assegnazione di tale permesso al comando mwlqmount per permettere anche agli utenti normali di montare dei mwlgmwlwfile system residenti su mwmamemorie di massa rimovibili, quali mwmqchiavi USB o mwmgCD-ROM. Per contro, la gestione della mwmwsicurezza in questo caso è di fatto demandata al programma stesso, ed in caso di mwnabug essa potrebbe essere violata (l'utente potrebbe ad esempio riuscire ad eseguire programmi arbitrari con privilegi elevati, tali da permettergli di violare il sistema, oppure i privilegi ottenuti potrebbero essere sufficienti per far infiltrare nel sistema dei mwnqmwngtrojan horse o altre minacce).
Il permesso mwoasetgid su file eseguibili si comporta in maniera analoga a mwoqsetuid, con la differenza che il kernel attribuisce al nuovo processo un mwogmwoweffective group ID pari a quello del gruppo assegnato al file, per cui il processo dispone anche dei privilegi di tale gruppo.
Per ragioni di sicurezza, il comportamento predefinito di alcune mwpqshell testuali, come ad esempio mwpwBashcite-ref-1[1], prevede di annullare l'effetto di tali permessi quando applicati a degli mwrascript: al loro avvio come interpreti esse infatti reimpostano automaticamente il valore mwrqdell'mwrgeffective user ID al valore del mwrwreal user ID, e quello mwsadell'mwsqeffective group ID al valore del mwsgreal group ID. In caso di necessità, è possibile avvalersi di programmi esterni, quali ad esempio mwswsudo, che opportunamente configurati permettono comunque di ottenere l'effetto desiderato.
File non eseguibili
Il permesso mwtgsetgid impostato su file non eseguibili permette invece ai processi di usare su di essi il mwtwmandatory locking, che è un meccanismo di mwualock non aggirabile dai processi offerto tipicamente dai sistemi operativi che derivano da mwuqUNIX System V ed anche da mwugLinux.cite-ref-2[2]
Comportamento sulle directory
Il permesso mwwqsetuid non ha effetto sulle mwwgdirectory, ed è di fatto ignorato.
Il permesso mwxasetgid applicato ad una mwxqdirectory fa in modo che tutti i nuovi mwxgfile e subdirectory creati al suo interno abbiano come gruppo assegnato quello del gruppo della directory che li contiene anziché quello principale dell'utente. Le nuove subdirectory inoltre avranno automaticamente impostato il permesso mwxwsetgid, di fatto propagandolo verso il basso nella gerarchia. È quindi comodo per creare directory destinate a contenere risorse da condividere tra utenti che hanno diversi gruppi principali, ma che hanno un gruppo supplementare in comune: in tal caso è sufficiente creare la directory assegnandole il gruppo in comune agli utenti ed il permesso mwyasetgid, e poi assicurarsi che i permessi dei file contenuti consentano l'accesso al gruppo suddetto.
Note
cite-note-11. ↑ mwzw(mwaamwaqEN) mwagmwawBash Startup Files – Invoked with unequal effective and real uid/gids, in mwbaBash Reference Manual. mwbqURL consultato il 16-06-2008.
cite-note-22. ↑ mwcq(mwcgmwcwEN) Andy Walker, mwdamwdqMandatory File Locking For The Linux Operating System (mwdgmwdwTXT), su mwealxr.linux.no. mweqURL consultato il 18-06-2008.
Voci correlate